import CryptoJS from 'crypto-js'
const AESkey = process.env.VUE_APP_SECRET_KEY
// 这样不可取，理论上密钥和iv应不同，且iv动态变化
export function encryptAES(message, secretKey=AESkey, iv=AESkey) {
    const key = CryptoJS.enc.Utf8.parse(secretKey); // 将密钥转换为Utf8格式的WordArray
    const ivVector = CryptoJS.enc.Utf8.parse(iv);
    const encrypted = CryptoJS.AES.encrypt(
      message,
      key,
      {
        iv: ivVector,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
      }
    );
    const hexString = CryptoJS.enc.Hex.stringify(encrypted.ciphertext);
    return hexString;
  }

  export function decryptAES(ciphertextHex, secretKey=AESkey, iv=AESkey) {
    // 将密钥转换为 Utf8 格式的 WordArray
    const key = CryptoJS.enc.Utf8.parse(secretKey);

    // 将 IV 转换为 Utf8 格式的 WordArray
    const ivVector = CryptoJS.enc.Utf8.parse(iv);

    // 将 Hex 格式的密文转换为 WordArray
    const ciphertext = CryptoJS.enc.Hex.parse(ciphertextHex);

    // 创建 AES 解密对象
    const decrypted = CryptoJS.AES.decrypt(
        {
            ciphertext: ciphertext
        },
        key,
        {
            iv: ivVector,
            mode: CryptoJS.mode.CBC,
            padding: CryptoJS.pad.Pkcs7
        }
    );

    // 将解密后的结果转换为字符串
    const decryptedText = decrypted.toString(CryptoJS.enc.Utf8);

    return decryptedText;
}

